// Logistics/Logins/Logins.js
import {config} from "../../utils/config";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    avatar: wx.getStorageSync('avatar'),             // 头像
  },

  // methods
  companyChange(e) {    // 选择机构
    this.setData({
      index1: e.detail.value,
    })
  },
  departmentChange(e) {    // 选择网点
    this.setData({
      index2: e.detail.value,
    })
  },
  formSubmit(e) {   // form提交按钮
    let formData = e.detail.value,
      flag = false,
      keyArr = {
        User: '账号',
        Password: '密码',
      }
    flag = Object.keys(keyArr).some((key, i) => {
      if(!formData[key]) {
        this._showToast(`请填写${keyArr[key]}！`)
        return true
      }
    })
    if(flag) return
    // 提交
    wx.login({
      success: res => {
        let {system_id,system_type} = config,
          post = {code: res.code,system_id,system_type,...formData};
        this.postLogin(post).then(res => {
          let {miniprogram_OpenID,token,refresh_token,system_id} = res.data.row[0] || {},
            {avatar} = this.data;
          // 存储登录信息
          wx.$util.setLoginStorage(res.data.row[0]);
          let storageObj = {
            openid: miniprogram_OpenID,
            loginAcct: formData.account,
            loginPwd: formData.password,
            avatar,
            loginType: 'login',
            system_type
          }
          Object.entries(storageObj).forEach(([key, val]) => wx.setStorageSync(key, val))
          wx.$getBarTitle(system_id);
          // 跳转到首页
          wx.reLaunch({url: '../Index/Index'})
        })
      }
    })
  },

  postLogin(post){
    return new Promise(resolve => {
      wx.showLoading({ mask: true, });
      wx.$post(1,'Authorize/Token_miniprogram',post).then(res => {
        if (res.errcode != 0) return;
        resolve(res);
      })
    })
  },
  _showToast(content) {
    wx.showToast({
      title: content,
      icon: 'none'
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})
